Bài viết mới
Video mới
Data Mining - Khái niệm, vai trò và ứng dụng.
Khi bạn đọc bài này nghĩa là bạn có độ quan tâm nhất định về công nghệ, điều này cho phép tôi dự đoán bạn đã và đang sử dụng những sản phẩm công nghệ như Google, Yahoo, Facebook, Twitter v.v… Trong bài viết này tôi có đôi chút hơi dài dòng nhưng cũng chỉ nhằm dẫn dắt bạn tới khái niệm mà tôi cảm thấy rất lí thú:Data Mining.
Mở đầu. Vài dòng suy nghĩ trên của tôi không phải là dự đoán mơ hồ mà hoàn toàn có cơ sở, tôi có thể lý giải sơ bộ về dự đoán trên như sau: Trước hết bạn phải công nhận/đồng ý với tôi rằng, hầu hết những người am hiểu ít nhiều về công nghệ đều không thể không biết đến các hệ thống như Google, Yahoo, Facebook, Twitter.. vì vậy điều tôi dự đoán bạn có sử dụng các sản phẩm trên hay không bằng cách nhận diện bạn là người am hiểu hoặc chí ít quan tâm đến công nghệ.

Ảnh có tính chất minh họa Vậy vấn đề là làm thế nào để tôi có thể nhận diện bạn là người am hiểu/quan tâm đến công nghệ? Câu hỏi này thực ra thì đơn giản thôi: Data mining – Đây là một cụm từ trọng tâm nằm trong tiêu đề bài viết, và từ này bản chất nó là công nghệ rồi, khi bạn đọc bài này ít nhiều cụm từ này gây cho bạn sự quan tâm nhất định nếu không muốn nói là bạn đã có một chút hiểu biết về nó, điều đó đồng nghĩa bạn phải có một kiến thức nền ở mức tương đối về lĩnh vực công nghệ (không nhất thiết phải là công nghệ thông tin), và đây là mấu chốt để tôi có thể khẳng định (với xác xuất cao nhất) bạn là người am hiểu/quan tâm đến công nghệ, và vì vậy hiển nhiên bạn phải biết và có sử dụng các dịch vụ trên :D. Hơi dài dòng chút, nhưng ở đây tôi muốn dẫn bạn tới khái niệm mà bài viết này sẽ đề cập và đó cũng là cách tôi ứng dụng để lý giải cho ví dụ ở trên: Data Mining. Đọc đến đây, ít nhiều bạn công nhận với tôi những điều trên (Nếu không thì tốt nhất đừng đọc tiếp, tốn time :D.), bạn biết rằng Google luôn trả cho bạn kết quả tìm kiếm tốt nhất, thông minh nhất.. Nó còn thông minh hơn nếu như bạn luôn tìm kiếm thông tin bằng cách đăng nhập vào hệ thống của Google, bạn có thể thử bằng cách tìm một từ khóa chuyên biệt khi không đăng nhập và khi đăng nhập, nói chung kết quả sẽ khác nhau, và hầu hết là kết quả khi bạn đăng nhập sẽ có độ chính xác với mục đích tìm kiếm của bạn cao hơn so với khi bạn không đăng nhập. Bạn có biết tại sao không? Tiếp: Facebook có tính năng rất hay và rất hữu dụng trong việc kết nối các mối quan hệ, đó là tính năng suggestions friends, các mối quan hệ của tôi hầu hết đều kết nối qua tính năng này, và điều thú vị là hầu hết các người bạn mà FB suggest đều là những người  tôi biết. Vậy tại sao FB nó lại thông minh đến mức như vậy? Amazon.com là website bán sách lớn nhất trên internet, bạn để ý rằng mỗi khi bạn xem thông tin chi tiết về một quyển sách nào đó trên site thì bao giờ cũng kèm theo 1 danh sách các quyển sách gợi ý mua kèm theo quyển bạn đang xem, một thống kê cho thấy có tới trên 70% đầu sách được người dùng mua thêm thông qua hình thức gợi ý này. Vậy điều gì làm cho việc bán sách hiệu quả đến như vậy? Trên đây chỉ là các ví dụ chúng ta có thể nhìn và hiểu luôn (không cần phải nghĩ :D), còn rất, rất nhiều các ví dụ từ nghiên cứu khoa học ứng dụng trong không gian, đến việc chống khủng bố (hay đấy chứ!!!) mà tôi không thể trình bày ở đây được.. Nói tóm lại tất cả những ví dụ, những điều tôi nói ở trên chung qui lại chỉ xoay quanh một chủ đề thôi: Data mining. Vậy data ming là cái gì vậy? Data mining là gì? Có khá nhiều cách định nghĩa khác nhau về Data mining nhưng tựu chung các bạn có thể hiểu nôm na nó là thế này: Data mining là một quá trình trích xuất thông tin có mối quan hệ hoặc có mối tương quan nhất định từ một kho dữ liệu lớn (cực lớn) nhằm mục đích dự đoán các xu thế, các hành vi trong tương lai, hoặc tìm kiếm những tập thông tin hữu ích mà bình thường không thể nhận diện được.

Ảnh có tính chất minh họa Ứng dụng của nó rất đa dạng và rộng tới, từ marketing, chống gian lận, giảm giá thành sản xuất, tăng doanh thu, phân tích hành vi sử dung người dùng internet để target đúng nhu cầu, đúng đối tượng hay ứng dụng hỗ trợ ra quyết định, nghiên cứu khoa học đến việc chống khủng bố v.v.. Các công cụ, kỹ thuật data mining có thể trả lời các câu hỏi mà các công cụ truyền thống đòi hỏi rất nhiều thời gian cần thiết để có thể giải đáp được (thậm chí các cách truyền thống không thể giải được). Nó có thể tìm thấy được những thông tin cực kỳ hữu ích mà rất dễ bị bỏ qua hoặc không xem xét đến để có thể dự đoán những xu thế/hành động xảy ra trong tương lai. Để có thể data mining một cách hiệu quả, điều đầu tiên cần phải thu thập dữ liệu và định nghĩa lại theo các tiêu chí cần phân tích. Các kỹ thuật data mining có thể cài đặt rất nhanh chóng trên các nền tảng phần mềm, phần cứng phổ thông mà không cần đòi hỏi quá phức tạp, tuy vậy data mining thường gắn liền với việc phân tích một khối lượng dữ liệu cực lớn nên cần ứng dụng các công nghệ high performance client/server hoặc xử lý song song (parallel programming). Nghe thì hơi loằng ngoằng khó hiểu, thực ra thì đúng là nó rất loằng ngoằng, phức tạp, khó hiểu :D.  Tuy vậy có thể tóm lược khái quát các thành phần cơ bản của data mining như sau. Các thành phần cơ bản của Data mining. Công nghệ data mining là kết quả của quá trình lâu dài nghiên cứu và phát triển sản phẩm. Quá trình này bắt đầu từ khi những dữ liệu đầu tiên lưu vào máy tính, tiếp đến là quá trình cải tiến, nâng câp cách thức truy xuất dữ liệu và dần dần cho phép người dùng có thể duyệt dữ liệu theo thời gian thực. Kết quả của quá trình này cho phép truy xuất các nguồn dữ liệu quá khứ, tính toán và định vị lại việc truyền tải, cung cấp thông tin cho hiện tại, tương lai hay đưa ra các dự đoán tình huống có thể sắp diễn ra. Có ba kỹ thuật cơ bản nhưng rất tổng quát và đầy đủ trong công nghệ data mining: Thu thập dữ liệu lớn. (Massive data collective). Nền tảng sức mạnh tính toán. Đây chính là hạ tầng bao gồm cả phần cứng và phần mềm lõi. (Powerful computing) Các giải thuật/thuật toán để khai thác dữ liệu. (Data mining Algorithms) Để có thể hiểu rõ hơn, tôi lấy ví dụ về hệ thống của VCC chúng ta: Hệ thống thu thập dữ liệu: từ các site nội bộ của VCC, lượng dữ liệu thu thập hàng ngày trung bình khoảng gần 200GB data, số bản ghi dao động từ 200 đến 700 triệu, thời điểm cao nhất đạt 1.8 tỷ bản ghi được ghi nhận trong một ngày. Các dữ liệu thu thập bao gồm thông tin về ads item, user-agent, user id, url v.v… Nền tảng tính toán bao gồm hệ thống Hadoop Cluster, Datawarehouse và các application server. Hệ thống Hadoop ứng dụng để giải các bài toán đòi hỏi phải xử lý song song trên một khối lượng dữ liệu cực lớn (hàng TB data và chục tỷ bản ghi), hệ thống DW ứng dụng để tính toán nhanh các dữ liệu nằm ở các khoảng thời gian ngắn, lượng bản ghi tính toán khoảng dưới 1 tỷ, và cần tính nhanh. Nền tảng này kết hợp với thành phần thứ ba dưới đây để giải các bài toán phân tích về hành vi người dùng, target, re-targeting sản phẩm đúng đối tượng, xây dựng hệ thống recommendation v.v.. Các thuật toán/giải thuật ứng dụng để khai thác dữ liệu: Hệ thống của VCC ứng dụng khác nhiều các giải thuật/thuật toán khác nhau, tùy vào từng bài toán cụ thể. Ví dụ với bài toán chống spam thì ứng dụng thuật toán Cosine Similarity, Bayesian, Clustering… bài toán detect IP thì ứng dụng một số giải thuật tự nghiên cứu, hay bài toán tính lượng unique user theo khoảng thời gian bất kỳ ứng dụng giải thuật Bloom filter v.v… Ngoài ra còn nhiều công nghệ phụ trợ khác, nhưng ba thành phần trên là phần cốt lõi của cả hệ thống mà VCC đã và đang ứng dụng. Vậy với các thành phần tuy cơ bản nhưng phức tạp như vậy, cụ thể hơn thì phạm vi và ứng dụng của hệ thống là gì? Phạm vi và ứng dụng. Như đã trình bày ở trên, pham vi ứng dụng của data mining rất rộng, bao phủ hầu hết các lĩnh vực. Tuy vậy có thể tóm lược lại phạm vi ứng dụng của data ming trong các bài toán yêu cầu có cần có các chức năng/nghiệp vụ sau: Tự động hóa việc dự doán các xu thế và hành vi sẽ diễn ra trong tương lai: Data mining tự động hóa quá trình tìm kiếm và trích xuất các tập thông tin có mối quan hệ hoặc tương quan trong một tập dữ liệu cực lớn. Những vấn đề/câu hỏi đặt ra với các cách truyền thống đòi hỏi một quá trình rất phức tạp và tốn kém cả về tài chính và thời gian để giải đáp thì giờ có thể trả lời một cách nhanh chóng trong khi giá thành là thấp nhất. Một ví dụ đơn giản trong quảng cáo online là quá trình targeting, khi một người dùng click vào một banner quảng cáo bán giầy dành cho nữ giới, thì khả năng người đó là nữ và họ đang quan tâm đến đôi giầy đó, khi hệ thống nhận diện được điều này thì có thể target thêm các kiểu dáng giầy khác nhau, kích cỡ khác nhau, giá thành khác nhau với mục tiêu là người dùng sẽ kết thúc quá trình là mua một đôi giày, ngoài ra bởi vì hệ thống nhận diện người dùng là phụ nữ nên nó có thể quảng cáo thêm các sản phẩm khác như mỹ phẩm, quần áo v.v.. Tự động hóa việc khám phá/nhận diện ra những tập thông tin quá khứ mà hệ thống không/chưa biết: Công cụ data mining trong quá trình phân tích dữ liệu sẽ nhận diện ra nhưng tập thông tin/dữ liệu không có hoặc bị ẩn bởi những mối liên hệ mà được xác định trước. Ví dụ như trong việc bán hàng, có những sản phẩm không có mối liên hệ gì với nhau, nhưng lại hay bán được cùng nhau, từ đó đưa ra cơ chế recommendation. Hay cơ chế nhận diện giao dịch gian lận trong thanh toán điện tử dựa vào việc phân tích các giao dịch bất thường… Ngày nay, các công nghệ data mining được ứng dụng rộng rãi trong các công ty lấy khách hàng làm trung tâm như truyền thông, tài chính, marketing, bán hàng, các nghành công nghiệp sản xuất v.v… Nó cho phép các công ty xác định được các mối quan hệ giữa các yếu tố nội tại như giá thành, mẫu mã, cách thức quảng cáo, thậm chí là kỹ năng của nhân viên công ty… các yếu tố bên ngoài như đối thủ cạnh tranh, chính sách kinh tế hay nhu cầu thị trường v.v.. Và nó còn hỗ trợ việc xác định được sự tác động của các chính sách khuyến mại, giảm giá, độ hài lòng của khách hàng và lợi nhuận của doanh nghiệp… Từ đầu đến giờ toàn nói data mining ứng dụng vào cái này cái kia mà chưa nói gì đến cách thức nó hoạt động thế nào. Phần tiếp theo chúng ta sẽ tìm hiểu kỹ hơn về vấn đề này. Data mining hoạt động như thế nào? Vậy chính xác thì data mining giúp bạn dự đoán được hoặc nhận biết nhưng điều chưa biết dựa trên tập dữ liệu quá khứ như thế nào? Các kỹ thuật ứng dụng để giải các câu hỏi trên trong data mining được gọi là quá trình mô hình hóa dữ liệu. Có nghĩa là xây dựng các mô hình trong các tình huống mà bạn đã biết/nhận diện được câu trả lời/kết quả và sau đó là áp dụng vào trong các tình huống khác mà bạn chưa biết/nhận diện được. Vài công nghệ và kỹ thuật data mining thường áp dụng như: thống kê (statistical), máy học (machine learning), mạng nơ ron (neural network). Data mining bao gồm các bước sau: 1. Thu thập, bóc tách, chuẩn hóa dữ liệu và nhập dữ liệu vào hệ thống kho dữ liệu (Datawarehouse). 2. Lưu trữ và quản lý dữ liệu dưới dạng đa chiều. 3. Đưa ra các cơ chế truy xuất cho các ứng dụng phân tích dữ liệu . 4. Sử dụng các phần mềm phân tích để tính toán. 5. Kết xuất dữ liệu dưới dạng dễ hiểu, như biểu đồ hoặc dạng report. Để ví dụ cho quá trình này, chúng ta quay trở lại trả lời các câu hỏi ở mục Mở đầu. Đầu tiên là câu hỏi tại sao kết quả tìm kiếm của Google lại khác nhau khi đăng nhập và khi không đăng nhập? Tôi nghĩ đọc đến đây, có lẽ bạn đã có thể hình dung được câu trả lời. Câu trả lời ngắn gọn là: Khi bạn đăng nhập Google biết bạn là ai, biết hành vi trong quá khứ của bạn như thế nào (thông qua quá trình thu thập dữ liệu hành vi của bạn trên các site mà Google hiện diện), do đó nó dựa vào sự hiểu biết này nên kết quả trả về bao giờ cũng là kết quả có độ chính xác với nhu cầu của bạn cao nhất và ngược lại, khi không đăng nhập, Google chỉ trả về kết quả ranking bình thường mà không có kèm theo tham số ranking theo user. Và dĩ nhiên để biết được hành vi trong quá khứ của bạn, Google phải sử dụng đến các công nghệ data mining. Thứ hai, tại sao Facebook lại có thể gợi ý cho tôi toàn những người mà tôi đã quen biết? Để có thể đưa ra gợi ý này đòi hỏi Facebook kết hợp rất nhiều các tham số, cụ thể là những tham số gì thì là bí mật công nghệ riêng của FB. Tuy nhiên có thể giải thích tóm lược như sau: Khi bạn đăng ký tài khoản Facebook, thông thường bạn nhập them các thông tin khác như: quá trình làm việc ở các công ty, công ty bạn đang làm, trường/lớp bạn đã/đang học, các hội bạn tham gia, bạn gái/trai/vợ/chồng của bạn v.v... Đây chính là các thông tin mà Facebook có thể dựa vào để xác định ai là bạn của bạn. Ở đây, Facebook đã mô hình hóa các tham số có độ liên quan nhất định để đưa ra những gợi ý mà có xác xuất đúng rất cao, và bạn thấy đó, thực sự là rất đúng :D. News stream của Facebook còn phức tạp và hay ho hơn nữa. Tất các điều đó Facebook làm được là quá trình thu thập dữ liệu hoạt động của người dùng trên site, sau đó sử dụng các công nghệ data mining để cung cấp nội dung, tính năng phù hợp nhất cho người dùng. Thứ ba, tại sao Amazon lại có thể đưa ra danh sách các quyển sách bán kèm có tỷ lệ bán được cao như vậy? Để làm được điều này Amazon đã đầu tư phát triển hệ thống recommendation trong hàng chục năm, thời gian dài đó không chỉ là phát triển thuần túy công nghệ mà còn là quãng thời gian thu thập và phân tích hành vi người sử dụng trên site của Amazon, thời gian càng dài, dữ liệu thu thập càng lớn, dẫn đến tập thông tin có độ tương quan càng nhiều và càng chính xác. Nôm na bạn có thể hiểu là 100 khách hàng mua quyển sách ABC thì có tới 40 khách hàng đồng thời mua quyển sách DEF, vì thế với khách hàng 101 xem quyển ABC, hệ thống nhận diện và đưa ra gợi ý mua them quên DEF, đơn giản là vậy, tuy nhiên bên dưới còn có nhiều tham số khác để tăng độ tương quan lên nữa. Và đây cũng là một quá trình mining dữ liệu. Một số công nghệ thường áp dụng trong data mining: Mạng trí tuệ nhân tạo (Artificial neural networks): Đây là mô hình mà hệ thống có thể tự học thông qua đào tạo với tập dữ liệu ban đầu, từ đó suy đoán ra các tập kết quả từ tập dữ liệu mà nó khai thác. Cây quyết định (Decisions Trees):  Một tập các decisions biểu diễn dưới dạng cây, các decisions này tạo ra các luật cho việc phân loại tập dữ liệu. Nôm na là, nếu tập thông tin A thõa mãn các luật B thì quyết định C. Giải thuật di truyền (Generic Algorithms): Kỹ thuật này sử dụng trong các quá trình phối hợp, biến đổi, chọn lọc tự nhiên kế thừa từ khái niệm tiến hóa. Phương pháp ông hàng xóm gần nhất (Nearest neighbor method): Đây là kỹ thuật phân loại từng bản ghi/thông tin trong tập dữ liệu dựa trên sự kết hợp của k records có độ giống nhau nhất trong tập dữ liệu quá khứ. Nguyên tắc suy diễn (Rule induction): Kỹ thuật bóc tác dữ liệu dựa trên nguyên tắc Nếu-Thì từ các tập dữ liệu thống kê. Hạ tầng công nghệ: Các bài toán data mining hầu hết là các bài toán xử lý lượng dữ liệu lớn, và phân tích phức tạp. Điều đó đòi hỏi phải có hạ tầng đủ lớn và có khả năng mở rộng mềm dẻo, linh hoạt (scale out) phù hợp với sự tăng trưởng của dữ liệu. Mô hình hệ thống thông thường được xây dựng trên cơ sở phân tán, cho phép lưu trữ và tính toán song song, khả năng chịu lỗi cao. Kích cỡ không gian lưu trữ dữ liệu tính bằng TB, băng thông giữa các node là Gb, tùy thuộc vào độ phức tạp của các công thức tính toán mà đòi hỏi hệ thống phải có lượng RAM đủ lớn, single CPU hay multi CPU v.v… Hệ thống thu thập dữ liệu phải có khả năng chịu tải cao và đảm bảo tính sẵn sang cao (High available), tốc độ xử lý nhanh (High performance). Kết luận: Bài viết này mới chỉ là bước dạo đầu để chúng ta có thể hình dung được data mining là gì. Các khái niệm, định nghĩa còn khá chung chung. Tuy vậy cũng đủ để các bạn có thể nắm được các điểm cốt lõi của một hệ thống data mining cần có những gì. Ngày nay, việc xây dựng ra một sản phẩm (đặc biệt là sản phẩm internet) ngày càng trở nên đơn giản hóa, tuy vậy để tồn tại, phát triển và mở rộng cần có những tính năng thông minh hỗ trợ cho người dùng đơn giản hóa việc truy xuất, đúng thông tin họ cần… Tất cả điều này đều cần đến nền tảng data mining bên dưới. Các công nghệ data mining thực ra không mới, nó đã hình thành cách đây hơn 20 năm, từ khi các công nghệ điện toán xử lý song song phát triển. Tuy nhiên việc ứng dụng nó và các hệ thống web là điều còn khá mới mẻ, đặc biệt là các sản phẩm trực tuyến ở Việt nam chúng ta, hầu như chưa trang web nào ứng dụng thực sự các công nghệ data mining, lý do là quy mô chưa đủ lớn, lượng dữ liệu cần phân tích còn nhỏ và hẹp. Tham khảo: Wikipedia: http://en.wikipedia.org/wiki/Data_mining Web: Introduction to Data Mining; What is Data Mining Book: Web Data Mining-Bing Liu, Springer publish Book: Programming Collective Intelligence.

Nguyễn Đăng Ngọc

Tin cùng chuyên mục